// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.common.service;

import java.util.List;
import java.util.Map;

import com.liuxinlong.common.TreeNode;

/**
 * 树查询服务层接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022年1月26日
 */
public interface TreeService {
	/**
	 * 查询层级结构树
	 *
	 * @param  actionScope 作用范围
	 * @return 层级结构树
	 */
	TreeNode queryHierarchyTree(int actionScope);

	/**
	 * 查询菜单树
	 *
	 * @return 菜单树
	 */
	TreeNode queryMenuTree();

	/**
	 * 查询专家组树
	 *
	 * @return 专家组树
	 */
	TreeNode queryExpertGroupTree();

	/**
	 * 拼接子节点
	 *
	 * @param parent      父节点
	 * @param bodyList    子结构列表
	 * @param map         已处理数据
	 * @param currentDeep 当前深度
	 * @param map         目标深度
	 */
	 void getChild(TreeNode parent, List<TreeNode> bodyList, Map<String, String> map, int currentDeep,
			int targetDeep);
}
